package com.ruoyi.system.domain;

import java.util.*;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysDept;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 检索结果对象 t_search_result
 * 
 * @author ruoyi
 * @date 2024-08-22
 */
public class SearchResult extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 规则id */
    @Excel(name = "规则id")
    private Long ruleId;

    /** 事件id */
    @Excel(name = "事件id")
    private Long evtId;

    /** 事件所属部门id */
    @Excel(name = "事件所属部门id")
    private Long deptId;

    /** 事件登记时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "事件登记时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reportTime;

    /**  */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    //搜索参数
    private Set<String> exWordContents = new HashSet<>();
    private Set<String> exWordCompleteFeedback = new HashSet<>();
    private Set<String> exWordEndFeedback = new HashSet<>();
    private Long evtTypeId1;
    private Long evtTypeId2;
    private Long evtTypeId3;
    private Set<String> wordToSearch = new HashSet<>();

    private SearchRule searchRule = new SearchRule();
    private Evt evt = new Evt();
    private SysDept dept = new SysDept();

    public void addWordToSearch(String[] wordsToSearch){
        wordToSearch.addAll(Arrays.asList(wordsToSearch));
    }

    public void addExWordContent(String[] exWords){
        exWordContents.addAll(Arrays.asList(exWords));
    }

    public void addExWordContent(String exWord){
        exWordContents.add(exWord);
    }

    public void addExWordCompleteFeedback(String[] exWords){
        exWordCompleteFeedback.addAll(Arrays.asList(exWords));
    }

    public void addExWordCompleteFeedback(String exWord){
        exWordCompleteFeedback.add(exWord);
    }

    public void addExWordEndFeedback(String[] exWords){
        exWordEndFeedback.addAll(Arrays.asList(exWords));
    }

    public void addExWordEndFeedback(String exWord){
        exWordEndFeedback.add(exWord);
    }

    public Set<String> getExWordContents() {
        return exWordContents;
    }

    public void setExWordContents(Set<String> exWordContents) {
        this.exWordContents = exWordContents;
    }

    public Set<String> getExWordCompleteFeedback() {
        return exWordCompleteFeedback;
    }

    public void setExWordCompleteFeedback(Set<String> exWordCompleteFeedback) {
        this.exWordCompleteFeedback = exWordCompleteFeedback;
    }

    public Set<String> getExWordEndFeedback() {
        return exWordEndFeedback;
    }

    public void setExWordEndFeedback(Set<String> exWordEndFeedback) {
        this.exWordEndFeedback = exWordEndFeedback;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setRuleId(Long ruleId) 
    {
        this.ruleId = ruleId;
    }

    public Long getRuleId() 
    {
        return ruleId;
    }

    public void setEvtId(Long evtId) 
    {
        this.evtId = evtId;
    }

    public Long getEvtId() 
    {
        return evtId;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    public void setReportTime(Date reportTime) 
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime() 
    {
        return reportTime;
    }

    public void setAddTime(Date addTime) 
    {
        this.addTime = addTime;
    }

    public Date getAddTime() 
    {
        return addTime;
    }

    public Long getEvtTypeId1() {
        return evtTypeId1;
    }

    public void setEvtTypeId1(Long evtTypeId1) {
        this.evtTypeId1 = evtTypeId1;
    }

    public Long getEvtTypeId2() {
        return evtTypeId2;
    }

    public void setEvtTypeId2(Long evtTypeId2) {
        this.evtTypeId2 = evtTypeId2;
    }

    public Long getEvtTypeId3() {
        return evtTypeId3;
    }

    public void setEvtTypeId3(Long evtTypeId3) {
        this.evtTypeId3 = evtTypeId3;
    }

    public Set<String> getWordToSearch() {
        return wordToSearch;
    }

    public void setWordToSearch(Set<String> wordToSearch) {
        this.wordToSearch = wordToSearch;
    }

    public SearchRule getSearchRule() {
        return searchRule;
    }

    public void setSearchRule(SearchRule searchRule) {
        this.searchRule = searchRule;
    }

    public Evt getEvt() {
        return evt;
    }

    public void setEvt(Evt evt) {
        this.evt = evt;
    }

    public SysDept getDept() {
        return dept;
    }

    public void setDept(SysDept dept) {
        this.dept = dept;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("ruleId", getRuleId())
            .append("evtId", getEvtId())
            .append("deptId", getDeptId())
            .append("reportTime", getReportTime())
            .append("addTime", getAddTime())
            .toString();
    }
}
